home *** CD-ROM | disk | FTP | other *** search
/ Aminet 44 / Aminet 44 (2001)(GTI - Schatztruhe)[!][Aug 2001].iso / Aminet / game / demo / Mattonite.lha / Mattonite / MattoniteEditor.AMOS / MattoniteEditor.amosSourceCode
AMOS Source Code  |  2000-12-07  |  14KB  |  483 lines

  1. '-> Mattonite Editor by Stefano Regattin 
  2. 'i> 13 ottobre 1996
  3. 'm> 14,16,17,18,19,20,25,26,30 ottobre 1996
  4. 'm> 3 luglio 1997
  5. 'm> 12 novembre 1997 
  6. 'm> 10,18 dicembre 1997
  7. 'm> 15 febbraio 1998 
  8. 'm> 19,20,21,22,24,30 maggio 2000
  9. 'm> 17 luglio 2000 
  10. 'm> 6 dicembre 2000
  11. '------------------- 
  12. OGGETTI$="MattoniteOggetti.Abk"
  13. BANCO=65535
  14. POSIZIONELINEAMAGGIORE=255
  15. POSIZIONELINEAMINORE=0
  16. Dim MATTONCINO(246),X0ZONA(246),Y0ZONA(246)
  17. Global FILE$,LIVELLO$,NOMEFILE$,OGGETTI$,PERCORSO$,PERCORSODEILIVELLI$
  18. Global PERCORSODEGLIOGGETTI$
  19. Global BANCO,BLULINEAMINORE,BONUS,C0LORELINEAMAGGIORE,C0LORELINEAMINORE
  20. Global CONVERSIONERIUSCITA,LINEAMAGGIORE
  21. Global LIVELLO,LINEE,POSIZIONELINEAMAGGIORE,POSIZIONELINEAMINORE
  22. Global RAGIONEDELROSSO#,RAGIONEDELVERDE#,RAGIONEDELBLU#
  23. Global ROSSOLINEAMINORE,VERDELINEAMINORE
  24. Global MATTONCINO(),X0ZONA(),Y0ZONA()
  25. Proc INDIVIDUALAPOSIZIONEDELPROGRAMMA
  26. Proc IMPOSTAIPERCORSIDEIFILE
  27. Proc IMPOSTALOSCHERMO
  28. Proc IMPOSTALARCOBALENO
  29. Proc IMPOSTAILAMPEGGI
  30. Proc CARICAGLIOGGETTI
  31. Proc IMPOSTAICOLORI
  32. Proc IMPOSTALEZONEDEIMATTONCINI
  33. Proc IMPOSTALABARRADISCORRIMENTO
  34. Proc MOSTRALEZONE
  35. Proc MOSTRALALINEAATTIVA
  36. LINEAMAGGIORE=True
  37. Proc MOSTRALALINEAATTIVA
  38. Ink 62 : Bar 20,209 To 29,218
  39. Ink 61 : Polyline 20,217 To 20,209 To 28,209
  40. Polyline 24,211 To 22,213 To 22,214 To 24,216
  41. Ink 63 : Polyline 21,218 To 29,218 To 29,210
  42. Polyline 27,211 To 25,213 To 25,214 To 27,216
  43. Set Zone 248,20,209 To 29,218
  44. Get Icon 1,20,209 To 29+1,218+1
  45. Ink 62 : Bar 30,209 To 39,218
  46. Ink 61 : Polyline 30,217 To 30,209 To 38,209
  47. Polyline 32,211 To 34,213 To 34,214 To 32,216
  48. Ink 63 : Polyline 31,218 To 39,218 To 39,210
  49. Polyline 35,211 To 37,213 To 37,214 To 35,216
  50. Set Zone 249,30,209 To 39,218
  51. Get Icon 2,30,209 To 39+1,218+1
  52. Set Zone 250,233,209 To 264,223
  53. Set Zone 251,233,225 To 264,239
  54. Set Zone 252,233,241 To 264,255
  55. Set Zone 253,273,0 To 319,255
  56. Proc MOSTRAILLIVELLO
  57. Paste Icon 64,209,1
  58. Set Zone 254,64,209 To 73,218
  59. Paste Icon 74,209,2
  60. Set Zone 255,74,209 To 83,218
  61. Proc MOSTRAILBONUS
  62. Paste Icon 140,209,1
  63. Set Zone 256,140,209 To 149,218
  64. Paste Icon 150,209,2
  65. Set Zone 257,150,209 To 159,218
  66. Set Zone 258,0,248 To 31,255 : Rem Load 
  67. Set Zone 259,40,248 To 71,255 : Rem Save 
  68. Set Zone 260,80,248 To 159,255 : Rem Line 
  69. Set Zone 261,0,240 To 55,247 : Rem Rainbow
  70. Set Zone 262,56,240 To 71,247 : Rem Arrow up 
  71. Set Zone 263,72,240 To 87,247 : Rem Arrow down 
  72. Set Zone 264,160,209 To 191,216 : Rem Quit 
  73. Ink 29,32 : Text 160,216,"Quit"
  74. Limit Mouse 
  75. Paste Bob 0,209,83
  76. MATTONCINO=1
  77. Do 
  78.  XTOPO=X Screen(X Mouse)
  79.  YTOPO=Y Screen(Y Mouse)
  80.  TASTODELTOPOCLICCATO=Mouse Click
  81.  TASTODELTOPOPREMUTO=Mouse Key
  82.  ZONATOPO=Mouse Zone
  83.  If TASTODELTOPOPREMUTO=1
  84.   If ZONATOPO>0 and ZONATOPO<248
  85.    If MATTONCINO=0
  86.     Ink 0 : Bar X0ZONA(ZONATOPO-1),Y0ZONA(ZONATOPO-1) To X0ZONA(ZONATOPO-1)+19,Y0ZONA(ZONATOPO-1)+9
  87.    Else 
  88.     Paste Bob X0ZONA(ZONATOPO-1),Y0ZONA(ZONATOPO-1),MATTONCINO+82
  89.    End If 
  90.    MATTONCINO(ZONATOPO-1)=MATTONCINO
  91.   Else If ZONATOPO>249 and ZONATOPO<253
  92.    If LINEAMAGGIORE=True
  93.     ROSSO=C0LORELINEAMAGGIORE/256
  94.     VERDE=C0LORELINEAMAGGIORE/16 mod 16
  95.     BLU=C0LORELINEAMAGGIORE mod 16
  96.    Else 
  97.     ROSSO=C0LORELINEAMINORE/256
  98.     VERDE=C0LORELINEAMINORE/16 mod 16
  99.     BLU=C0LORELINEAMINORE mod 16
  100.    End If 
  101.    If ZONATOPO=250
  102.     ROSSO=(XTOPO-233)/2
  103.     Hslider 233,209 To 264,223,16,ROSSO,1
  104.     Ink 0 : Bar 217,216 To 232,223
  105.     ROSSO$=Str$(ROSSO)-" " : Ink 29,32 : Text 233-Len(ROSSO$)*8,222,ROSSO$
  106.    Else If ZONATOPO=251
  107.     VERDE=(XTOPO-233)/2
  108.     Hslider 233,225 To 264,239,16,VERDE,1
  109.     Ink 0 : Bar 217,232 To 232,239
  110.     VERDE$=Str$(VERDE)-" " : Ink 29,32 : Text 233-Len(VERDE$)*8,238,VERDE$
  111.    Else If ZONATOPO=252
  112.     BLU=(XTOPO-233)/2
  113.     Hslider 233,241 To 264,255,16,BLU,1
  114.     Ink 0 : Bar 217,248 To 232,255
  115.     BLU$=Str$(BLU)-" " : Ink 29,32 : Text 233-Len(BLU$)*8,254,BLU$
  116.    End If 
  117.    C0LORE=ROSSO*256+VERDE*16+BLU
  118.    Colour 1,C0LORE
  119.    If LINEAMAGGIORE=True
  120.     C0LORELINEAMAGGIORE=C0LORE
  121.     Rain(0,POSIZIONELINEAMAGGIORE)=C0LORELINEAMAGGIORE
  122.    Else 
  123.     C0LORELINEAMINORE=C0LORE
  124.     Rain(0,POSIZIONELINEAMINORE)=C0LORELINEAMINORE
  125.    End If 
  126.    Rainbow 0,257,0,271
  127.   Else If ZONATOPO=253
  128.    If YTOPO>POSIZIONELINEAMINORE
  129.     Ink 0 : Draw 273,POSIZIONELINEAMAGGIORE To 319,POSIZIONELINEAMAGGIORE
  130.     POSIZIONELINEAMAGGIORE=YTOPO
  131.     LINEAMAGGIORE=True
  132.     Proc MOSTRALALINEAATTIVA
  133.    End If 
  134.   Else If ZONATOPO=258
  135.    Inverse On : Print At(0,31);"Load"; : Inverse Off 
  136.    Proc CARICAILLIVELLO
  137.    Proc DABANCOAVARIABILI
  138.    Rainbow 0,257,0,271
  139.    Proc MOSTRAIMATTONCINI
  140.    Proc MOSTRAILBONUS
  141.    Proc MOSTRALEZONE
  142.    Proc MOSTRALALINEAATTIVA
  143.    LINEAMAGGIORE= Not LINEAMAGGIORE
  144.    Proc MOSTRALALINEAATTIVA
  145.   Else If ZONATOPO=259
  146.    Inverse On : Print At(5,31);"Save"; : Inverse Off 
  147.    Proc DAVARIABILIABANCO
  148.    Proc SALVAILLIVELLO
  149.    Proc MOSTRALEZONE
  150.    Proc MOSTRALALINEAATTIVA
  151.   End If 
  152.  Else If TASTODELTOPOPREMUTO=2
  153.   If ZONATOPO=253
  154.    If YTOPO<POSIZIONELINEAMAGGIORE
  155.     Ink 0 : Draw 273,POSIZIONELINEAMINORE To 319,POSIZIONELINEAMINORE
  156.     POSIZIONELINEAMINORE=YTOPO
  157.     LINEAMAGGIORE=False
  158.     Proc MOSTRALALINEAATTIVA
  159.    End If 
  160.   Else If ZONATOPO=254
  161.    Add LIVELLO,-1,0 To 999
  162.    Proc MOSTRAILLIVELLO
  163.   Else If ZONATOPO=255
  164.    Add LIVELLO,1,0 To 999
  165.    Proc MOSTRAILLIVELLO
  166.   Else If ZONATOPO=256
  167.    Add BONUS,-1,0 To 9999999
  168.    Proc MOSTRAILBONUS
  169.   Else If ZONATOPO=257
  170.    Add BONUS,1,0 To 9999999
  171.    Proc MOSTRAILBONUS
  172.   End If 
  173.  End If 
  174.  If TASTODELTOPOCLICCATO=1
  175.   If ZONATOPO=248
  176.    Add MATTONCINO,-1,0 To 33
  177.    If MATTONCINO=0
  178.     Ink 0 : Bar 0,209 To 19,218 : Ink 29 : Box 0,209 To 19,218
  179.    Else 
  180.     Paste Bob 0,209,82+MATTONCINO
  181.    End If 
  182.   Else If ZONATOPO=249
  183.    Add MATTONCINO,1,0 To 33
  184.    If MATTONCINO=0
  185.     Ink 0 : Bar 0,209 To 19,218 : Ink 29 : Box 0,209 To 19,218
  186.    Else 
  187.     Paste Bob 0,209,82+MATTONCINO
  188.    End If 
  189.   Else If ZONATOPO=254
  190.    Add LIVELLO,-1,0 To 999
  191.    Proc MOSTRAILLIVELLO
  192.   Else If ZONATOPO=255
  193.    Add LIVELLO,1,0 To 999
  194.    Proc MOSTRAILLIVELLO
  195.   Else If ZONATOPO=256
  196.    Add BONUS,-1,0 To 9999999
  197.    Proc MOSTRAILBONUS
  198.   Else If ZONATOPO=257
  199.    Add BONUS,1,0 To 9999999
  200.    Proc MOSTRAILBONUS
  201.   Else If ZONATOPO=260
  202.    LINEAMAGGIORE= Not LINEAMAGGIORE
  203.    Proc MOSTRALALINEAATTIVA
  204.   Else If ZONATOPO=261
  205.    Inverse On : Print At(0,30);"Rainbow"; : Inverse Off 
  206.    LINEE=POSIZIONELINEAMAGGIORE-POSIZIONELINEAMINORE+1
  207.    If LINEE>2
  208.     Proc CALCOLALARAGIONEDELROSSODELVERDEEDELBLU
  209.     Proc PROGRESSIONECOLORI
  210.    Else 
  211.     Bell 1
  212.    End If 
  213.    Proc MOSTRALEZONE
  214.    Proc MOSTRALALINEAATTIVA
  215.   Else If ZONATOPO=262
  216.    Inverse On : Print At(7,30);Chr$(147);Chr$(148); : Inverse Off 
  217.    If LINEAMAGGIORE=True
  218.     If POSIZIONELINEAMAGGIORE>0 and POSIZIONELINEAMAGGIORE>POSIZIONELINEAMINORE+1
  219.      Ink 0 : Draw 273,POSIZIONELINEAMAGGIORE To 319,POSIZIONELINEAMAGGIORE
  220.      Dec POSIZIONELINEAMAGGIORE
  221.      Wait 5
  222.     End If 
  223.    Else 
  224.     If POSIZIONELINEAMINORE>0
  225.      Ink 0 : Draw 273,POSIZIONELINEAMINORE To 319,POSIZIONELINEAMINORE
  226.      Dec POSIZIONELINEAMINORE
  227.      Wait 5
  228.     End If 
  229.    End If 
  230.    Proc MOSTRALEZONE
  231.    Proc MOSTRALALINEAATTIVA
  232.   Else If ZONATOPO=263
  233.    Inverse On : Print At(9,30);Chr$(149);Chr$(150); : Inverse Off 
  234.    If LINEAMAGGIORE=True
  235.     If POSIZIONELINEAMAGGIORE<255
  236.      Ink 0 : Draw 273,POSIZIONELINEAMAGGIORE To 319,POSIZIONELINEAMAGGIORE
  237.      Inc POSIZIONELINEAMAGGIORE
  238.      Wait 5
  239.     End If 
  240.    Else 
  241.     If POSIZIONELINEAMINORE<255 and POSIZIONELINEAMINORE<POSIZIONELINEAMAGGIORE-1
  242.      Ink 0 : Draw 273,POSIZIONELINEAMINORE To 319,POSIZIONELINEAMINORE
  243.      Inc POSIZIONELINEAMINORE
  244.      Wait 5
  245.     End If 
  246.    End If 
  247.    Proc MOSTRALEZONE
  248.    Proc MOSTRALALINEAATTIVA
  249.   Else If ZONATOPO=264
  250.    Exit 
  251.   End If 
  252.  End If 
  253. Loop 
  254. Rainbow Del 0 : Screen Close 0 : Erase All : End 
  255. Procedure CALCOLALARAGIONEDELROSSODELVERDEEDELBLU
  256.  ROSSOLINEAMAGGIORE=C0LORELINEAMAGGIORE/256
  257.  ROSSOLINEAMINORE=C0LORELINEAMINORE/256
  258.  RAGIONEDELROSSO#=(ROSSOLINEAMAGGIORE-ROSSOLINEAMINORE)/(LINEE-1.0)
  259.  VERDELINEAMAGGIORE=C0LORELINEAMAGGIORE/16 mod 16
  260.  VERDELINEAMINORE=C0LORELINEAMINORE/16 mod 16
  261.  RAGIONEDELVERDE#=(VERDELINEAMAGGIORE-VERDELINEAMINORE)/(LINEE-1.0)
  262.  BLULINEAMAGGIORE=C0LORELINEAMAGGIORE mod 16
  263.  BLULINEAMINORE=C0LORELINEAMINORE mod 16
  264.  RAGIONEDELBLU#=(BLULINEAMAGGIORE-BLULINEAMINORE)/(LINEE-1.0)
  265. End Proc
  266. Procedure CARICAGLIOGGETTI
  267.  Load PERCORSODEGLIOGGETTI$+OGGETTI$
  268. End Proc
  269. Procedure CARICAILLIVELLO
  270.  Erase BANCO
  271.  LIVELLO$="Livello"+Str$(LIVELLO)-" "
  272.  FILE$=PERCORSODEILIVELLI$+LIVELLO$
  273.  If Exist(FILE$)
  274.   Open In 1,FILE$
  275.   MARCATORE$=Input$(1,9)
  276.   LUNGHEZZABANCO=Lof(1)
  277.   Close 1
  278.   If MARCATORE$="Mattonite"
  279.    Reserve As Work BANCO,LUNGHEZZABANCO
  280.    Bload FILE$,Start(BANCO)
  281.   End If 
  282.  End If 
  283. End Proc
  284. Procedure DABANCOAVARIABILI
  285.  If Length(BANCO)>0
  286.   INDIRIZZO=Start(BANCO)+9
  287.   For A=0 To 246
  288.    MATTONCINO(A)=Peek(INDIRIZZO)
  289.    Inc INDIRIZZO
  290.   Next A
  291.   For A=0 To 255
  292.    ARCOBALENO=Peek(INDIRIZZO)
  293.    Inc INDIRIZZO
  294.    ARCOBALENO=ARCOBALENO+Peek(INDIRIZZO)*$100
  295.    Rain(0,A)=ARCOBALENO
  296.    Inc INDIRIZZO
  297.   Next A
  298.   BONUS=Peek(INDIRIZZO)
  299.   Inc INDIRIZZO
  300.   Add BONUS,Peek(INDIRIZZO)*100
  301.   Inc INDIRIZZO
  302.   Add BONUS,Peek(INDIRIZZO)*10000
  303.   Inc INDIRIZZO
  304.   Add BONUS,Peek(INDIRIZZO)*1000000
  305.   Inc INDIRIZZO
  306.   Print At(0,29);
  307.   If INDIRIZZO=Start(BANCO)+Length(BANCO)
  308.    Print "Level";LIVELLO;" loaded";
  309.   Else 
  310.    Print "Data error";
  311.   End If 
  312.  Else 
  313.   Print At(0,29);"Level not loaded";
  314.  End If 
  315.  Wait 100
  316.  Print At(0,29);Space$(28);
  317. End Proc
  318. Procedure DAVARIABILIABANCO
  319.  Reserve As Work BANCO,772
  320.  INDIRIZZO=Start(BANCO)
  321.  Poke$ INDIRIZZO,"Mattonite"
  322.  Add INDIRIZZO,9
  323.  For A=0 To 246
  324.   Poke INDIRIZZO,MATTONCINO(A)
  325.   Inc INDIRIZZO
  326.  Next A
  327.  For A=0 To 255
  328.   ARCOBALENO=Rain(0,A)
  329.   Poke INDIRIZZO,ARCOBALENO mod $100
  330.   Inc INDIRIZZO
  331.   Poke INDIRIZZO,ARCOBALENO/$100
  332.   Inc INDIRIZZO
  333.  Next A
  334.  Poke INDIRIZZO,BONUS mod 100
  335.  Inc INDIRIZZO
  336.  Poke INDIRIZZO,BONUS/100 mod 100
  337.  Inc INDIRIZZO
  338.  Poke INDIRIZZO,BONUS/10000 mod 100
  339.  Inc INDIRIZZO
  340.  Poke INDIRIZZO,BONUS/1000000 mod 100
  341.  Inc INDIRIZZO
  342.  Print At(0,29);
  343.  If INDIRIZZO=Start(BANCO)+Length(BANCO)
  344.   Print "Level";LIVELLO;" converted";
  345.   CONVERSIONERIUSCITA=True
  346.  Else 
  347.   Print "Data error";
  348.   CONVERSIONERIUSCITA=False
  349.  End If 
  350.  Wait 100
  351.  Print At(0,29);Space$(28);
  352. End Proc
  353. Procedure INDIVIDUALAPOSIZIONEDELPROGRAMMA
  354.  PERCORSO$=Dir$
  355. End Proc
  356. Procedure IMPOSTAICOLORI
  357.  Get Bob Palette 
  358. End Proc
  359. Procedure IMPOSTAILAMPEGGI
  360.  Flash 20,"(0FF,2)(FFF,1)(0FF,2)(000,1)"
  361.  Flash 21,"(F70,2)(FFF,1)(F70,2)(000,1)"
  362.  Flash 22,"(F77,9)(FF7,9)(7F7,9)(7FF,9)(77F,9)(F7F,9)"
  363. End Proc
  364. Procedure IMPOSTAIPERCORSIDEIFILE
  365.  PERCORSODEGLIOGGETTI$=PERCORSO$+"Grafica/"
  366.  PERCORSODEILIVELLI$=PERCORSO$+"Livelli/"
  367. End Proc
  368. Procedure IMPOSTALABARRADISCORRIMENTO
  369.  Set Slider 61,61,29,1,63,63,29,1
  370. End Proc
  371. Procedure IMPOSTALARCOBALENO
  372.  Set Rainbow 0,0,271,"","","" : Rainbow 0,257,0,271
  373. End Proc
  374. Procedure IMPOSTALEZONEDEIMATTONCINI
  375.  Reserve Zone 264
  376.  Ink 29 : Polyline 272,0 To 272,208 To 0,208
  377.  For M=0 To 246
  378.   LINEADIMATTONCINI=M/13
  379.   RIGADIMATTONCINI=M mod 13
  380.   X0ZONA(M)=RIGADIMATTONCINI*21
  381.   Y0ZONA(M)=LINEADIMATTONCINI*11
  382.   MATTONCINO(M)=1
  383.   If MATTONCINO(M)>0 Then Paste Bob X0ZONA(M),Y0ZONA(M),82+MATTONCINO(M)
  384.   Set Zone M+1,X0ZONA(M),Y0ZONA(M) To X0ZONA(M)+20,Y0ZONA(M)+10
  385.  Next M
  386. End Proc
  387. Procedure IMPOSTALOSCHERMO
  388.  Screen Open 0,320,256,64,Lowres
  389.  Curs Off : Flash Off : Pen 29 : Paper 0 : Cls 
  390. End Proc
  391. Procedure MOSTRAILBONUS
  392.  CIFRA=BONUS/1000000 mod 10
  393.  Ink 29,32 : Text 84,216,Str$(CIFRA)-" "
  394.  CIFRA=BONUS/100000 mod 10
  395.  Ink 29,32 : Text 92,216,Str$(CIFRA)-" "
  396.  CIFRA=BONUS/10000 mod 10
  397.  Ink 29,32 : Text 100,216,Str$(CIFRA)-" "
  398.  CIFRA=BONUS/1000 mod 10
  399.  Ink 29,32 : Text 108,216,Str$(CIFRA)-" "
  400.  CIFRA=BONUS/100 mod 10
  401.  Ink 29,32 : Text 116,216,Str$(CIFRA)-" "
  402.  CIFRA=BONUS/10 mod 10
  403.  Ink 29,32 : Text 124,216,Str$(CIFRA)-" "
  404.  CIFRA=BONUS mod 10
  405.  Ink 29,32 : Text 132,216,Str$(CIFRA)-" "
  406. End Proc
  407. Procedure MOSTRAILLIVELLO
  408.  CIFRA=LIVELLO/100 mod 10
  409.  Ink 29,32 : Text 40,216,Str$(CIFRA)-" "
  410.  CIFRA=LIVELLO/10 mod 10
  411.  Ink 29,32 : Text 48,216,Str$(CIFRA)-" "
  412.  CIFRA=LIVELLO mod 10
  413.  Ink 29,32 : Text 56,216,Str$(CIFRA)-" "
  414. End Proc
  415. Procedure MOSTRAIMATTONCINI
  416.  For M=0 To 246
  417.   If MATTONCINO(M)=0
  418.    Ink 0 : Bar X0ZONA(M),Y0ZONA(M) To X0ZONA(M)+19,Y0ZONA(M)+9
  419.   Else 
  420.    Paste Bob X0ZONA(M),Y0ZONA(M),MATTONCINO(M)+82
  421.   End If 
  422.  Next M
  423. End Proc
  424. Procedure MOSTRALALINEAATTIVA
  425.  If LINEAMAGGIORE=True
  426.   C0LORELINEAMAGGIORE=Rain(0,POSIZIONELINEAMAGGIORE)
  427.   Colour 1,C0LORELINEAMAGGIORE
  428.   Ink 1 : Bar 264,208 To 272,255
  429.   Ink 29 : Box 264,208 To 272,255
  430.   ROSSO=C0LORELINEAMAGGIORE/256
  431.   VERDE=C0LORELINEAMAGGIORE/16 mod 16
  432.   BLU=C0LORELINEAMAGGIORE mod 16
  433.   Ink 29 : Draw 272,POSIZIONELINEAMAGGIORE To 281,POSIZIONELINEAMAGGIORE
  434.   Ink 32 : Draw 310,POSIZIONELINEAMAGGIORE To 319,POSIZIONELINEAMAGGIORE
  435.  Else 
  436.   C0LORELINEAMINORE=Rain(0,POSIZIONELINEAMINORE)
  437.   Colour 1,C0LORELINEAMINORE
  438.   Ink 1 : Bar 264,208 To 272,255
  439.   Ink 29 : Box 264,208 To 272,255
  440.   ROSSO=C0LORELINEAMINORE/256
  441.   VERDE=C0LORELINEAMINORE/16 mod 16
  442.   BLU=C0LORELINEAMINORE mod 16
  443.   Ink 29 : Draw 272,POSIZIONELINEAMINORE To 281,POSIZIONELINEAMINORE
  444.   Ink 32 : Draw 310,POSIZIONELINEAMINORE To 319,POSIZIONELINEAMINORE
  445.  End If 
  446.  Hslider 233,209 To 264,223,16,ROSSO,1
  447.  Ink 0 : Bar 217,216 To 232,223
  448.  ROSSO$=Str$(ROSSO)-" " : Ink 29,32 : Text 233-Len(ROSSO$)*8,222,ROSSO$
  449.  Hslider 233,225 To 264,239,16,VERDE,1
  450.  Ink 0 : Bar 217,232 To 232,239
  451.  VERDE$=Str$(VERDE)-" " : Ink 29,32 : Text 233-Len(VERDE$)*8,238,VERDE$
  452.  Hslider 233,241 To 264,255,16,BLU,1
  453.  Ink 0 : Bar 217,248 To 232,255
  454.  BLU$=Str$(BLU)-" " : Ink 29,32 : Text 233-Len(BLU$)*8,254,BLU$
  455.  Locate 10,31
  456.  If LINEAMAGGIORE=True Then Print "Major"; Else Print "Minor";
  457. End Proc
  458. Procedure MOSTRALEZONE
  459.  Print At(0,30);Space$(28);At(0,30);"Rainbow";Chr$(147);Chr$(148);Chr$(149);Chr$(150)
  460.  Print At(0,31);Space$(28);At(0,31);"Load Save       line";
  461. End Proc
  462. Procedure PROGRESSIONECOLORI
  463.  Shared LINEE,RAGIONEDELROSSO#,RAGIONEDELVERDE#,RAGIONEDELBLU#
  464.  Shared ROSSOLINEAMINORE,VERDELINEAMINORE,BLULINEAMINORE
  465.  For LINEA=1 To LINEE-2
  466.   ROSSO=ROSSOLINEAMINORE+(LINEA)*RAGIONEDELROSSO#
  467.   VERDE=VERDELINEAMINORE+(LINEA)*RAGIONEDELVERDE#
  468.   BLU=BLULINEAMINORE+(LINEA)*RAGIONEDELBLU#
  469.   C0LORE=ROSSO*256+VERDE*16+BLU
  470.   Rain(0,POSIZIONELINEAMINORE+LINEA)=C0LORE : Rainbow 0,257,0,271
  471.   Bell 96
  472.  Next LINEA
  473. End Proc
  474. Procedure SALVAILLIVELLO
  475.  If CONVERSIONERIUSCITA=True
  476.   LIVELLO$="Livello"+Str$(LIVELLO)-" "
  477.   FILE$=PERCORSODEILIVELLI$+LIVELLO$
  478.   Bsave FILE$,Start(BANCO) To Start(BANCO)+Length(BANCO)
  479.   Print At(0,29);"Level";LIVELLO;" saved";
  480.   Wait 100
  481.   Print At(0,29);Space$(28);
  482.  End If 
  483. End Proc